﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Cotizav.LogicaNegocio
{
    public class TipoEquipoBLL
    {

        public List<Entidades.Tipo> Listar()
        {
            AccesoDatos.TipoEquipoDAO tipoEquipoDAO = new AccesoDatos.TipoEquipoDAO();

            using (Util.ContextoDB ctx = Util.ContextoDB.GetContexto())
            {
                return tipoEquipoDAO.Listar(ctx);
            }
        }

        public int Guardar(Entidades.Tipo newTipoEquipo)
        {
            if (string.IsNullOrWhiteSpace(newTipoEquipo.NombreTipo))
            {
                throw new ApplicationException("El Nombre del tipo de equipo se encuentra vacío");
            }

            AccesoDatos.TipoEquipoDAO tipoEquipoDAO = new AccesoDatos.TipoEquipoDAO();
            int resultado = 0;

            using (Util.ContextoDB ctx = Util.ContextoDB.GetContexto())
            {
                resultado = tipoEquipoDAO.Registrar(ctx, newTipoEquipo);
            }

            return resultado;
        }

        public int Actualizar(Entidades.Tipo updTipoEquipo)
        {
            if (string.IsNullOrWhiteSpace(updTipoEquipo.NombreTipo))
            {
                throw new ApplicationException("El Nombre del tipo de equipo se encuentra vacío");
            }

            AccesoDatos.TipoEquipoDAO tipoEquipoDAO = new AccesoDatos.TipoEquipoDAO();
            int resultado = 0;

            using (Util.ContextoDB ctx = Util.ContextoDB.GetContexto())
            {
                resultado = tipoEquipoDAO.Actualizar(ctx, updTipoEquipo);
            }

            return resultado;
        }

        public int Eliminar(Entidades.Tipo selTipo)
        {
            int resultado = 0;
            AccesoDatos.TipoEquipoDAO tipoEquipoDAO = new AccesoDatos.TipoEquipoDAO();

            using (Util.ContextoDB ctx = Util.ContextoDB.GetContexto())
            {
                resultado = tipoEquipoDAO.Eliminar(ctx, selTipo);
            }

            return resultado;
        }
    }
}
